package com.buddy.summary.code.singleton;

/**
 * 使用内部类维护单例的实例
 * 当StaticSingleton被加载的时候其内部类不会被初始化
 * 只有当getInstance方法被调用的时候才会加载内部类
 * 因为实例的建立是在类加载时完成，因此对线程友好
 */
public class StaticSingleton {
    private StaticSingleton(){
        System.out.println("StaticSingleton is created");
    }

    private static class SingletonHolder{
        private static StaticSingleton instance = new StaticSingleton();
    }

    public static StaticSingleton getInstance(){
        return SingletonHolder.instance;
    }

}
